<?php
require_once (__DIR__ . "/../conf/config.php");
require_once (__DIR__ . "/../funciones.php");
require_once('Tools.php');
class Cliente {
       public $id;
	public $aDefinition = array (
			"tabla" => "CLIENTES",
			"primary_key" => "ID_CLIENTE",
			"nombre" => null,
			"apellidos" => null,
			"dni" => 0,
			"calle" => 0,
			"numero" => null,
			"portal" => null,
                        "piso" => null,
                        "puerta" => null,
                        "codigo_postal" => null,
                        "localidad" => null,
                        "pais" => null,
                        "telefono" => null,
                        "fecha_nacimiento" => null,
	);
	/**
	 * Constructor por defecto
	 * Si recibe las primary key del CLIENTE, muestra informacion asociada
	 * Si no recibe parametros se crea un producto nuevo
	 */
	public function __construct($id_cliente = null) {
		if (isset ( $id_cliente )) {
			$con = abrirConexion ();
			$sql = "SELECT *
                                FROM CLIENTES
                                WHERE `ID_CLIENTE` = " . ( int ) $id_cliente;
                                // return $sql;
                                if ($res = mysqli_query ( $con, $sql )) {
                                    while ( $tupla = mysqli_fetch_array ( $res ) ) {
                                            $this->aDefinition ["nombre"] = $tupla ['NOMBRE'];
                                            $this->aDefinition ["apellidos"] = $tupla ['APELLIDOS'];
                                            $this->aDefinition ["dni"] = $tupla ['DNI'];
                                            $this->aDefinition ["calle"] = $tupla ['CALLE'];
                                            $this->aDefinition ["numero"] = $tupla ['NUMERO'];
                                            $this->aDefinition ["portal"] = $tupla ['PORTAL'];
                                            $this->aDefinition ["piso"] = $tupla ['PISO'];
                                            $this->aDefinition ["puerta"] = $tupla ['PUERTA'];
                                            $this->aDefinition ["codigo_postal"] = $tupla ['CODIGO_POSTAL'];
                                            $this->aDefinition ["localidad"] = $tupla ['LOCALIDAD'];
                                            $this->aDefinition ["pais"] = $tupla ['PAIS'];
                                            $this->aDefinition ["telefono"] = $tupla ['TELEFONO'];
                                            $this->aDefinition ["fecha_nacimiento"] = $tupla ['FECHA_NACIMIENTO'];
                                            // $this->aDefinition["nombre"] =>
                                    }
				cerrarConexion ( $con );
                                }
		}
	}
	/**
	 * devuelve el elemento de la matriz que se pasa por parametro
	 * 
	 * @param
	 *        	string
	 *        	return string
	 */
	public function __get($atributo) {
		if (isset ( $this->aDefinition [$atributo] )) {
			return $this->aDefinition [$atributo];
		} else {
			return false;
		}
	}
	
	/**
	 * establece un valor a la matriz
	 * 
	 * @param
	 *        	string elemento de la matriz
	 * @param
	 *        	valor que se asigna a la matriz
	 */
	public function __set($atributo, $valor) {
		if (isset ( $this->aDefinition [$atributo] )) {
			$this->aDefinition [$atributo] = $valor;
		}
	}
        public function getDatosEnvio()
        {
            $datosEnvios = array(
                "Nombre" =>  $this->aDefinition ["nombre"],
                "Apellidos" =>  $this->aDefinition ["apellidos"],
                "Direccion" => "C/ ". $this->aDefinition ["calle"] ." Num: " . $this->aDefinition ["numero"]. " Portal: " .  $this->aDefinition ["portal"] .
                " piso: ".  $this->aDefinition ["piso"] ." puerta: ".  $this->aDefinition ["puerta"],
                "Codigo Postal" => $this->aDefinition ["codigo_postal"],
                "Localidad" => $this->aDefinition ["localidad"],
                "Pais" => $this->aDefinition ["pais"],
                "Telefono" => $this->aDefinition ["telefono"]
                
            );
            return $datosEnvios;
        }
	/*
	 * Devuelve la matriz con todos los atributos return array
	 */
	public function getAllElements() {
		if (isset ( $this->id_cat ) && isset ( $this->id_subcat )) {
			$con = abrirConexion ();
			$sql = "SELECT *
                FROM PRODUCTOS
                WHERE `COD_CATEGORIA` = " . ( int ) $this->id_cat . " AND `COD_SUBCATEGORIA` = " . ( int ) $this->id_subcat;
			// return $sql;
			if ($res = mysqli_query ( $con, $sql )) {
				while ( $tupla = mysqli_fetch_array ( $res ) ) {
					$this->aDefinition ['id_categoria'] = $tupla ["COD_CATEGORIA"];
					$this->aDefinition ['id_subcategoria'] = $tupla ["COD_SUBCATEGORIA"];
					$this->aDefinition ["precio"] = $tupla ['PRECIO'];
					$this->aDefinition ["descripcion"] = $tupla ['DESCRIPCION'];
					$this->aDefinition ["cantidad"] = $tupla ['UNIDADES_DISPONIBLES'];
					// $this->aDefinition["nombre"] =>
				}
				cerrarConexion ( $con );
				return $this->aDefinition;
			} else {
				return "Error getAllElements Producto";
			}
		}
	}
}
?>